使用OpenSSL API以编程方式验证证书链

您所在的位置:网站首页 openssl x509 verify 使用OpenSSL API以编程方式验证证书链

使用OpenSSL API以编程方式验证证书链

#使用OpenSSL API以编程方式验证证书链| 来源: 网络整理| 查看: 265

这与其他问题非常相似,但我看过的那些问题要么没有答案,要么不完全问同样的问题。我有一个自签名的CA证书,以及另外两个用该CA证书签名的证书。我相当确定证书是正确的,因为'openssl验证‘是有效的:

$ openssl verify -CAfile ca.pem server.pem server.pem: OK

(上面是我记忆中的,我面前没有,所以可能会有一点偏差)。

现在,我想以编程方式验证证书。我有一个实用函数,伪代码如下:

int verify_cert(X509 *cert, X509 *cacert) { int ret; X509_STORE *store; X509_STORE_CTX *ctx; store = X509_STORE_new(); X590_STORE_add_cert(store, cacert); ctx = X509_STORE_CTX_new(); X509_STORE_CTX_init(ctx, store, cert, NULL); ret = X590_verify_cert(ctx); /* check for errors and clean up */ }

我的问题是上面的代码总是返回‘找不到颁发者证书’。我做错了什么?我相信我正在创建一个新的存储区,添加证书,创建一个新的上下文,并使用指向包含CA的存储区的指针将要验证的子证书添加到上下文中。很明显我做错了什么,但我不确定是什么。

有什么想法吗?

更新:我知道我可以将这些证书保存到磁盘上,然后使用X509_LOOKUP_file或类似的东西。我正在寻找一种不会不必要地接触磁盘的解决方案。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3